package com.giraffe.device.service;


import com.giraffe.device.domain.Device;
import com.giraffe.device.pojo.dto.DeviceDTO;

import java.util.List;

/**
 * 产品(Product)表服务接口
 *
 * @author makejava
 * @since 2023-02-14 10:39:59
 */
public interface DeviceService {

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    Device findById(String id);

    /**
     * 新增数据
     *
     * @param product 实体对象
     * @return 新增结果
     */
    Device create(Device product);

    /**
     * 修改新据
     *
     * @param product 实体对象
     * @return 修改结果
     */
    Device update(Device product);

    /**
     * 逻辑删除数据
     *
     * @param idList 主键结合
     * @return 删除结果
     */
    void delete(List<String> idList);

    /**
     * 启用（单个或者批量）
     *
     * @param idList 主键结合
     * @return 启用结果
     */
    void enable(List<String> idList);

    /**
     * 禁用（单个或者批量）
     *
     * @param idList 主键结合
     * @return 禁用结果
     */
    void disable(List<String> idList);


    /**
     * 获取设备信息
     *
     * @param deviceId
     * @return
     */
    DeviceDTO getDevice(String deviceId);

    /**
     * 设置设备状态
     *
     * @param dto
     * @return
     */
    Boolean setDeviceStatus(DeviceDTO dto);
}

